#ifndef OPEDB_H
#define OPEDB_H

#include <QObject>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>
#define qcout qDebug()<<"---------["<<__FILE__ <<":"<< __LINE__<<"]-->"

#include "protocol.h"
#include <QStringList>


class OpeDB : public QObject
{
    Q_OBJECT
public:
    explicit OpeDB(QObject *parent = nullptr);

    //通过静态成员函数, 获取静态对象
    static OpeDB& getInstance();

    //初始化数据库连接
    void init();

    ~OpeDB();

    //服务器处理数据库注册操作, 向数据库userInfo表中插入数据
    bool handleRegist(const QString name, const QString pwd);
    //服务器处理数据库客户端登录操作, 在数据库userInfo表中查询登录信息
    int handleLogin(const QString name, const QString pwd);
    //服务器处理数据库用户下线请求
    bool handleOffLine(const QString name);
    //服务器处理客户端查看所有在线用户请求
    QStringList handleAllOnline();
    //处理客户端搜索用户操作, 在数据库userInfo表中查询要搜索的用户信息
    int handleSearchUsr(const QString name);
    //处理客户端添加好友操作, 在数据库userInfo表中查询好友信息
    int handleAddFriend(const QString firstName, const QString secondName);

signals:

public slots:
    //

private:
    QSqlDatabase m_db;//连接数据库

};

#endif // OPEDB_H
